import pandas as pd

# 读数据
df = pd.read_excel('学生成绩.xlsx')
print(df)

# 4 数据排序分析
# 4.1 按照索引或标签排序
print('按照行索引降序排序:', df.sort_index(ascending=False))
print('按照列索引升序排序:', df.sort_index(axis=1))

# 4.2 按值排序
print('按照语文列升序排序:', df.sort_values(by='语文', axis=0, ascending=False))


# 4.3 数据排名分析
# 分组和聚合计算总成绩
df['总成绩'] = df.groupby({'语文': '总成绩', '数学': '总成绩', '英语': '总成绩', '综合': '总成绩'}, axis=1).agg('sum')
print(df['总成绩'])



#4.2.2
pd.set_option('display.unicode.east_asian_width',True)   #对齐
df['总成绩']=df.sum(axis=1,numeric_only=True)      #按行计算总成绩，添加到列末
df['平均值']=df.mean(axis=1,numeric_only=True)
print(df)
print('统计指标',df.describe())


# 4.2.2 字符型数据的统计
df = pd.read_excel('xueshengchengji.xlsx')
print('按照频数降序统计姓名列：', df.value_counts('姓名'))
print('按照频数升序统计语文列：', df.value_counts('学号', normalize=True, ascending=True))
print('按照频数降序统计所有列：', df.value_counts(['姓名','学号']))
print('统计所有列的指标：', df[['姓名','学号']].describe())